01-EC2인스턴스시작
EC2 인스턴스 시작
EC2 인스턴스 생성
EC2 콘솔 접속
- AWS 콘솔에서 EC2 서비스 클릭
- 왼쪽 메뉴에서 "Instances" 클릭
- "Launch instances" 버튼 클릭
기본 설정
Name: webapp-server
Application and OS Images:
- Amazon Machine Image (AMI): Amazon Linux AMI 등 자유롭게 선택
- Architecture: x86_64
Instance type: t2.micro (또는 t3.micro), 예산에 맞게 자유롭게 선택
Key pair: webapp-keypair (이전에 생성한 키 페어 선택)
네트워크 설정
Network settings 편집 클릭:
VPC: webapp-vpc 선택
Subnet: webapp-public-subnet 선택
Auto-assign public IP: Enable 선택
Firewall (security groups):
- Select existing security group 선택
- webapp-web-sg 선택
스토리지 설정
Configure storage:
- Size (GiB): 8 (기본값 유지 ) or 자유롭게 예산에 맞춰 선택
- Volume Type: gp3 (기본값 유지)
고급 설정(선택 사항, 이렇게 사용한다는 것만 알고 넘어가도 됨)
Advanced details 확장:
User data 섹션에 다음 스크립트 입력:
#!/bin/bash
# 시스템 업데이트
dnf update -y
# Node.js 20 설치
dnf install -y nodejs npm
# 기본 도구 설치
dnf install -y git wget curl unzip
# 애플리케이션 디렉토리 준비
mkdir -p /home/ec2-user/webapp
chown ec2-user:ec2-user /home/ec2-user/webapp
# 환경 준비 완료 로그
echo "$(date): EC2 setup completed" >> /var/log/webapp-setup.log
인스턴스 시작
- Launch instance 클릭
- View all instances 클릭하여 인스턴스 목록으로 이동
인스턴스 상태 확인
부팅 대기
- Instance State: Pending → Running 변경 대기 (약 2-3분)
- Status Check: Initializing → 2/2 checks passed 대기
인스턴스 정보 확인
인스턴스가 Running 상태가 되면 다음 정보 확인:
Public IPv4 address: (예: 3.34.123.45) - 기록해두세요
Private IPv4 address: (예: 10.0.1.100)
Public IPv4 DNS: (예: ec2-3-34-123-45.ap-northeast-2.compute.amazonaws.com)
MobaXterm SSH 연결
MobaXterm 실행 및 세션 생성
- MobaXterm 실행
- Session 버튼 클릭
- SSH 선택
SSH 연결 설정
Basic SSH settings:
- Remote host: EC2 인스턴스의 Public IPv4 address 입력
- Specify username: 체크 →
ec2-user입력 - Port: 22 (기본값)
Advanced SSH settings:
- Use private key: 체크
- 키 파일 경로: webapp-keypair.pem 파일 선택
연결 실행
- OK 클릭
- 처음 연결 시 호스트 키 확인 메시지 → Yes 클릭
- 로그인 성공 시 다음과 같은 프롬프트 표시:
[ec2-user@ip-10-0-1-100 ~]$
시스템 환경 확인
기본 시스템 정보 확인
# 시스템 정보
uname -a
# 현재 사용자 확인
whoami
# 홈 디렉토리 확인
pwd
간단 실습
node js 및 파일 설치
Node.js 설치 확인
# Node.js 버전 확인
node --version
# npm 버전 확인
npm --version
# 설치된 패키지 확인
which node
which npm
네트워크 연결 확인
# 인터넷 연결 테스트
ping -c 3 google.com
# DNS 해상도 확인
nslookup google.com
애플리케이션 디렉토리 준비
작업 디렉토리 이동
# 홈 디렉토리로 이동
cd ~
# webapp 디렉토리 확인
ls -la webapp/
# webapp 디렉토리로 이동
cd webapp
디렉토리 권한 확인
# 현재 디렉토리 권한 확인
ls -la .
# 소유권 확인 (ec2-user여야 함)
ls -ld .
연결 문제 해결
SSH 연결 실패 시
- 보안 그룹 확인: webapp-web-sg에서 SSH(22) 포트가 내 IP로 허용되어 있는지 확인
- 키 파일 확인: webapp-keypair.pem 파일이 올바른 위치에 있는지 확인
- Public IP 확인: 인스턴스의 Public IPv4 address가 올바른지 확인
- VPC 설정 확인: 인스턴스가 Public subnet에 있고 Auto-assign public IP가 활성화되어 있는지 확인
User Data 스크립트 실행 확인
# 설치 로그 확인
sudo tail -f /var/log/cloud-init-output.log
# 설정 완료 로그 확인
sudo cat /var/log/webapp-setup.log
완료 체크리스트
다음 항목들을 확인하세요:
EC2 인스턴스 준비 완료
EC2 인스턴스가 성공적으로 생성되고 SSH 연결도 완료되었습니다!
현재 상태:
- EC2 인스턴스: Running
- Node.js 환경: 준비 완료
- 네트워크: Public subnet에서 인터넷 접근 가능
- SSH 접속: MobaXterm으로 관리 가능
다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/03-기본실습-NodeJS/02-NodeJS설치배포
관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/Week2-전체가이드